/******************************************************************************
 * RLT DSP
 * by Roberto Bender <beto.bender@gmail.com>
 * under GPL 2.0 license
 * 2009
******************************************************************************/

#ifndef FILTERS_H
#define FILTERS_H

#define FILTER_SUCCESS              0
#define FILTER_INVALID_PARAMS_ERROR 1
#define FILTER_MAXED_OUT            2
#define FILTER_GENERIC_ERROR        999

typedef double workingWord;
typedef short outputWord;
typedef short inputWord;

struct FilterParams
{
    workingWord m_AmpCrop;
    workingWord m_Amp;
};

typedef workingWord(*FilterFunction)(workingWord, struct FilterParams*);

int StartFiltersEngine();
int StopFiltersEngine();
int AddFilter(struct FilterParams* params, FilterFunction function);
void ClearFilters();
void EnableFilters();
void DisableFilters();
outputWord CalcFilter(inputWord input);

#endif

